home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Languguage OS 2
/
Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO
/
gnu
/
libg_261.zip
/
libg_261
/
libg++
/
tests
/
tVec.cc
< prev
next >
Wrap
C/C++ Source or Header
|
1994-06-28
|
2KB
|
96 lines
/*
test/demo of Vecs, AVecs
*/
#include <stream.h>
#include "iVec.h"
#include "iAVec.h"
int int_compare(int a, int b)
{
return a - b;
}
int plus(int a, int b)
{
return a + b;
}
int inc(int a)
{
return a + 1;
}
void printint(int a)
{
cout << a << " ";
}
void print(intVec a)
{
a.apply(printint);
cout << "\n";
}
#include <MLCG.h>
MLCG randgen;
int main()
{
intVec a(20);
for (int i = 0; i < a.capacity(); ++i) a[i] = randgen.asLong() % 100;
cout << "a: "; print(a);
a.sort(int_compare);
cout << "a.sort():"; print(a);
intVec b = map(inc, a);
cout << "b = map(inc, a): "; print(b);
intVec c = merge(a, b, int_compare);
cout << "c = merge(a, b): "; print(c);
intVec d = concat(a, b);
cout << "d = concat(a, b): "; print(d);
d.resize(10);
cout << "d.resize(10): "; print(d);
d.reverse();
cout << "d.reverse(): "; print(d);
d.fill(0, 4, 4);
cout << "d.fill(0, 4, 4): "; print(d);
cout << "d.reduce(plus, 0) = " << d.reduce(plus, 0) << "\n";
intVec e = d.at(2, 5);
cout << "e = d.at(2, 5): "; print(e);
intAVec x(20);
for (i = 0; i < x.capacity(); ++i) x[i] = i;
cout << "x: "; print(x);
intAVec y(20);
for (i = 0; i < y.capacity(); ++i) y[i] = randgen.asLong() % 100 + 1;
cout << "y: "; print(y);
cout << "x + y: "; print(x + y);
cout << "x - y: "; print(x - y);
cout << "product(x, y): "; print(product(x,y));
cout << "quotient(x, y): "; print(quotient(x,y));
cout << "x * y: " << (x * y) << "\n";
cout << "x + 2: "; print(x + 2);
cout << "x - 2: "; print(x - 2);
cout << "x * 2: "; print(x * 2);
cout << "x / 2: "; print(x / 2);
intAVec z(20, 1);
cout << "z(20, 1): "; print(z);
cout << "z = -z: "; print(z = -z);
cout << "z += x: "; print(z += x);
cout << "z -= x: "; print(z -= x);
cout << "x.sum(): " << x.sum() << "\n";
cout << "x.sumsq(): " << x.sumsq() << "\n";
cout << "x.min(): " << x.min() << "\n";
cout << "x.max(): " << x.max() << "\n";
cout << "x.min_index(): " << x.min_index() << "\n";
cout << "x.max_index(): " << x.max_index() << "\n";
cout << "\nEnd of test\n";
return 0;
}